package com.bdan.t382.service.imp;

import com.bdan.t382.dao.PetDao;
import com.bdan.t382.dao.imp.PetDaoMySQLImpl;
import com.bdan.t382.dao.imp.PetDaoOracleImpl;
import com.bdan.t382.entity.Pet;
import com.bdan.t382.factory.PetDaoFactory;
import com.bdan.t382.service.PetService;


 import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
 @Service("petService")
public class PetServiceImpl implements PetService {
     @Resource(type= PetDaoOracleImpl.class)
     // 使用注解注入属性时，可以不提供 setter 方法
     @Autowired
 private PetDao petDao;
   // PetDao petDao=new PetDaoMySQLImpl();
  // PetDao petDao=PetDaoFactory.getInstance(PetDaoFactory.defaultBeanName);
//    public PetDao getPetDao(){
//        return petDao;
//    }
    public void  setPetDao(PetDao petDao){
        this.petDao=petDao;
    }
    @Override
    public boolean save(Pet pet) {
       return petDao.insert(pet)>0;
//返回值大于 0：通常表示插入操作成功，且返回值代表成功插入的记录数量。在大部分情况下，一次插入一条记录时，如果插入成功，该方法会返回 1。所以 petDao.insert(pet) > 0 意味着只要有记录成功插入到数据库中，这个条件就会满足。
//返回值等于 0：表示插入操作没有成功插入任何记录。可能是因为数据库中存在约束条件（如唯一约束、外键约束等）导致插入失败，或者插入语句本身存在问题。
//返回值小于 0：这种情况相对较少，但也可能出现。可能是因为在插入过程中出现了异常，并且异常处理逻辑将异常信息通过返回负数的方式反馈出来。
    }
}
